The present invention relates to a system and method for combining requests for data in an information system and, more particularly, to a system having a shared cache look-up table within groups of information appliances.
In conventional information systems, such as a distributed file system or the World Wide Web, requests for data items are directed to a server. If multiple requests are made at approximately the same time, the server becomes a bottleneck and subsequent requests queue up until the server can complete current requests. Each user perceives an increased latency and a degradation of system performance. For example, when the Shoemaker-Levy comet collided with Jupiter, many requests were made for the image data of the collision and the latency for providing the data was very long, or requests for the data were simply refused.
A server's performance can be increased by using a faster processor (or processors) and by increasing the bandwidth of the interconnect to the server. However, this can be expensive and, especially in the case of a transient event, not feasible to implement. In large distributed information systems, the aggregate demand for bandwidth of all the potential users (called "clients" in "client-server" systems) is enormous and cannot be satisfied by any single current server machine.
In certain systems, the demand for data is continuous such as in a distributed file system which serves the binary code of a commonly used application. In other systems, the demand for data can be predicted sufficiently far in advance, such as when Netscape distributes the latest version of its Internet browser. In these situations, multiple servers can be set up, typically distributed to be near the expected sources of the requests. In this approach, the users distribute their requests to all of the servers, so that there is no single bottleneck and each server receives only its share of requests. The user or system administrator manually attempts to select a relatively lightly loaded server to get low-latency service of the requests. Setting up the servers can be labor intensive and the users may find it undesirable to have to select a server.
In one proposed system, the server is "removed" by distributing its functions, such as storage, cache and control, over cooperating work stations. T. Anderson et al., Serverless Network File Systems, Computer Science Division, University of California at Berkeley, 15th ACM Symposium on Operating System Principles (December 1995). The server cache is replaced by cooperative caching which is implemented by forwarding data among client caches under control of managers. A globally replicated manager map indicates which manager (and the physical machine on which it is running) manages which groups of file index numbers. A file is read by using the manager map to locate the correct manager for the index number and sending a request for the file to that manager. Even with this distributed system, a particular manager can become a bottleneck if multiple requests for a particular data item are made at approximately the same time.